package org.example.common.core.domain.model;

import lombok.Data;
import lombok.NoArgsConstructor;
import org.example.common.core.constants.TenantConstants;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashSet;

/**
 * 登录用户信息
 *
 */
@Data
@NoArgsConstructor
public class LoginUser implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 租户ID
     */
    private String tenantId;
    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户名称
     */
    private String username;
    /**
     * 用户呢称
     */
    private String nickname;
    /**
     * 用户密码
     */
    private String password;
    /**
     * 部门ID
     */
    private Long deptId;
    /**
     * 部门名
     */
    private String deptName;
    /**
     * 用户token标识
     */
    private String token;
    /**
     * 用户token时间毫秒
     */
    private Long expires_in;
    /**
     * 用户类型
     */
    private String userType;
    /**
     * 拥有权限
     */
    private Collection<String> authorizes= new HashSet();
    /**
     * 拥有角色
     */
    private Collection<String> roles=new HashSet();
    /**
     * 拥有角色
     */
    private  Collection<RoleDTO> dtoCollection=new HashSet();


    public boolean isSuperAdmin() {
        return userId==1l&&roles.contains(TenantConstants.SUPER_ADMIN_ROLE_KEY);
    }

    public boolean isTenantAdmin() {
        return roles.contains(TenantConstants.TENANT_ADMIN_ROLE_KEY);
    }
}
